<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * 管理员登录操作日志
 * @param unknown $log_action
 * @param number $item_id
 * @param string $log_info
 */
function add_admin_log($log_action, $item_id = 0, $log_info = '')
{

}
/**
 * 判断管理员对某一个操作是否有权限。
 *
 * 根据当前对应的action_code，然后再和用户session里面的action_list做匹配，以此来决定是否可以继续执行。
 * @param     string    $priv_str    操作对应的priv_str
 * @param     string    $msg_type       返回的类型
 * @return true/false
 */
function admin_priv($priv_str, $msg_output = true)
{
	if(check_authz($priv_str)){
		return true;
	}else{
		if ($msg_output){
			$CI =& get_instance();
			if($CI->input->is_ajax_request()){
				make_json_error('对不起,您没有执行此项操作的权限7!');
			}else{
				$links = array();
				if(empty($_SESSION['helper_id']) || empty($_SESSION['mobile'])){
					$links = array('text' => "返回登录", 'href' => 'privilege/signin');
				}
				show_message('登录超时！请重新登录!', $links, 'error');
			}
		}
		return false;
	}
}

//判断某个医院用户是否有权限进入 模块权限
function helper_module($priv_str){
    if(isset($_SESSION['module_list'])){
        $mess_module = explode(',', $_SESSION['module_list']);
        if(in_array($priv_str, $mess_module)){
            return true;
        }else{
            $CI =& get_instance();
    		if($CI->input->is_ajax_request()){
    			make_json_error('对不起,您没有执行此项操作的权限!');
    		}else{
    			$links = array();
    			if(empty($_SESSION['helper_id']) || empty($_SESSION['mobile'])){
    				$links = array('text' => "返回登录", 'href' => 'privilege/signin');
    			}
    			show_message('对不起! 您没有执行此项操作的权限!', $links, 'error');
    		}
            return false;
        }
    }else{
        //show_message('对不起! 您没有执行此项操作的权限3!', '', 'error');
    }
    
}

//判断某个小屋经理 用户是否有权限进入 模块权限
function helper_action($priv_str){
    if(isset($_SESSION['helper_md_list'])){
        $mess_module = explode(',', $_SESSION['helper_md_list']);
        if(in_array($priv_str, $mess_module)){
            return true;
        }else{
            $CI =& get_instance();
    		if($CI->input->is_ajax_request()){
    			make_json_error('对不起,您没有执行此项操作的权限4!');
    		}else{
    			$links = array();
    			if(empty($_SESSION['helper_id']) || empty($_SESSION['mobile'])){
    				$links = array('text' => "返回登录", 'href' => 'privilege/signin');
    			}
    			show_message('对不起! 您没有执行此项操作的权限5!', $links, 'error');
    		}
            return false;
        }
    }else{
       // show_message('对不起! 您没有执行此项操作的权限6!', '', 'error');
    }
    
}

/**
 * 判断管理员对某一个操作是否有权限。
 *
 * 根据当前对应的action_code，然后再和用户session里面的action_list做匹配，以此来决定是否可以继续执行。
 * @param     string    $action    对编辑或删除权限的判定 $action_code_array 不为空的情况下 可传入其他权限代码，一般用于特殊权限）
 * @param string $edit, $dele  编辑或删除权限编号 $action_code_array 不为空的情况下 可传入其他权限代码，一般用于特殊权限）
 * @param  array $action_code_array  不为空则加入权限判定(一维字符串数组) 
 * @return true/false
 */
function admin_permissions($action, $edit, $dele, $action_code_array = array())
{
	//所有编辑操作（其他特殊权限 请添加到如下数组即可）
	$priv_endit_arr = array('edit', 'add', 'exchanges', 'insert', 'update', 'hide', 'show', 'remove_binding', 'fast_edit', 'allot', 'payout');
	//所有删除操作
	$priv_del_arr = array('delete', 'remove', 'restore');

	if(count($action_code_array) > 0){
		$priv_endit_arr = array_merge($priv_endit_arr, $action_code_array);
		$priv_del_arr = array_merge($priv_del_arr, $action_code_array);
	}
	//如果是删除 或移除 就判断删除权限  不然直接判断编辑权限
	if(in_array($action, $priv_del_arr)){
		admin_priv($dele);
	}else{
		if(in_array($action, $priv_endit_arr)){
			admin_priv($edit);
		}
	}
}

/**
 * 检查管理员权限
 *
 * @access  public
 * @param   string  $authz
 * @return  boolean
 */
function check_authz($authz)
{
	$action_list = isset($_SESSION['action_list']) ? $_SESSION['action_list'] : '';
	return (preg_match('/,*'.$authz.',*/', $action_list) || $action_list == 'all');
}
/**
 * 检查管理员权限，返回JSON格式数剧
 *
 * @access  public
 * @param   string  $authz
 * @return  void
 */
function check_authz_json($authz)
{
	if (!check_authz($authz)){
		make_json_error('对不起,您没有执行此项操作的权限!');
	}
}